package org.swim.remote.entities;

import java.util.List;
import java.util.Set;

public interface ICollaboration extends IEntity{

	public static enum Status {
		REQUESTED, CONFIRMED, REJECTED, COMPLETED
	}
	
	public static enum Visibility{
		HIDDEN, VISIBLE
	}
	
	public enum Attribute{
		TITLE("title"),
		STATUS("status"),
		SENDERVISIBILITY("senderVisibility"),
		SENDERID("senderId"),
		RECEIVERID("receiverId");
		
		private final String attributeName;
		
		Attribute(String attributeName){
			this.attributeName = attributeName;
		}
		
		public String toString(){
			return attributeName;
		}
	}
	
	public abstract IUser getIUserBySenderId();

	public abstract IUser getUserByReceiverId();

	public abstract String getTitle();

	public abstract Status getStatus();
	
	public abstract Visibility getSenderVisibility();

	public abstract List<IMessage> getMessagesList();

	public abstract Set<IFeedback> getFeedbacksSet();
	
	public abstract boolean isMy(IUser user);

}